﻿using System;

namespace Padsurface.CoreAudio.Constants
{
    /// <summary>
    /// Indicate special characteristics that a client can assign to an audio stream during the initialization of the stream.
    /// </summary>
    public class AudioClientStreamFlags
    {
        public const UInt32 None = 0;

        /// <summary>
        /// The audio stream will be a member of a cross-process audio session
        /// </summary>
        public const UInt32 CrossProcess = 0x00010000;

        /// <summary>
        /// The audio stream will operate in loopback mode
        /// </summary>
        public const UInt32 Loopback = 0x00020000;

        /// <summary>
        /// Processing of the audio buffer by the client will be event driven
        /// </summary>
        public const UInt32 EventCallback = 0x00040000;

        /// <summary>
        /// The volume and mute settings for an audio session will not persist across system restarts
        /// </summary>
        public const UInt32 NoPersist = 0x00080000;

        /// <summary>
        /// The sample rate of the stream is adjusted to a rate specified by an application
        /// </summary>
        public const UInt32 RateAdjust = 0x00100000;
    }
}
